package com.adxon.data;

import java.util.Set;
import java.util.StringTokenizer;
import java.util.TreeSet;

import com.adxon.MsgException;

public class Tagging extends Kindee{
	protected String	tg;			// tags
	private boolean		tgf=true;	// tags flag

	@Override
	protected void commitExt()throws MsgException{
		super.commitExt();
		if(tgf)
			tg=commitTags(tg);
		commit("tg",tg);
	}
	protected String commitTags(String tags)throws MsgException{
		if(tags==null)
			return null;

		Set<String>	s=new TreeSet<String>();
		StringTokenizer z=new StringTokenizer(tags,",");
		while(z.hasMoreTokens())
			s.add(z.nextToken().trim());

		StringBuilder n=new StringBuilder();
		boolean b=false;
		for(String i:s){
			if(b)
				n.append(',');
			else b=true;
			n.append(i);
			Tag t=new Tag();
			t.id=id;
			t.kn=kn;
			t.ow=ow;
			t.rt=rt;
			t.tx=i;
			t.commit();
		}
		return n.toString();
	}
	public String getTags(){
		return tg;
	}
	public boolean setTags(String tags){
		String s=tg;
		tg=regulate(tags);
		tgf=s==null?tg!=null:!s.equals(tg);
		return tgf;
	}
	@Override
	public void updateExt()throws MsgException{
		super.updateExt();
		tg=updateString("tg");
		tgf=false;
	}
}